
function wlIsObject(param) {
    return Object.prototype.toString.call(param) === '[object Object]';
}

function wlIsArray(param) {
    return Object.prototype.toString.call(param) === '[object Array]';
}

function wlIsNotNullArray(param) {
    if (wlIsArray(param)) {
        return param.length > 0;
    }
    return false;
}

function wlIsNumber(param) {
    return Object.prototype.toString.call(param) === '[object Number]';
}

function wlIsString(param) {
    return Object.prototype.toString.call(param) === '[object String]';
}

function wlIsNotNullString(param) {
    if (wlIsString(param)) {
        return param != '';
    }
    return false;
}

function wlIsNull(param) {
    return Object.prototype.toString.call(param) === '[object Null]';
}

function wlIsUndefined(param) {
    return Object.prototype.toString.call(param) === '[object Undefined]';
}

function wlIsDate(param) {
    return Object.prototype.toString.call(param) === '[object Date]';
}

function wlIsBoolean(param) {
    return Object.prototype.toString.call(param) === '[object Boolean]';
}

function wlIsFunc(param) {
    return Object.prototype.toString.call(param) === '[object Function]';
}

function wlIsValidDate(param) {
    if (wlIsDate(param)) {
        return !isNaN(param.getTime());
    }
    return false;
}


function wlIsNotNull(param) {
    return !wlIsNull(param) && !wlIsUndefined(param);
}


function wlIsGreater0(param) {
    return wlIsNumber(param) && param > 0;
}



function wlIsFloatNum(val) {
    if (isNaN(val) || val <= 0) {
        return false;
    } else {
        return true;
    }
}

function wlIsInt(val) {
    if (/(^[1-9]\d*$)/.test(val) || val == 0) {
        return true;
    } else {
        return false;
    }
}

function wlGetType(param){
    //type 格式为 
    //[obejct Number]
    //[obejct String]
    //[obejct Boolean] 等
    //需要提取第二节类型
    let type = Object.prototype.toString.call(param);
    return type.replace(WLConst.reg.getType, '$1').toLowerCase();
}